import {request} from '../../request/index.js';
//导入es7的async进行请求语法  进行使用
import regeneratorRuntime, { async } from '../../lib/runtime/runtime';

/*
点击轮播图，预览大图的功能实现
1.给图片添加一个绑定事件
2.使用到wx原生的 api     wx.previewImage(Object object)
   1）要先构造图片预览的数组（图片url的数组）
   2）接收传递过来图片的url  【通过自定义传】         
*/

/**
 点击加购物车的功能
 1.为加购绑定事件
 2.获取缓存中购物车数据  格式为数组
 3.之后判断
    存在 ： 修改商品数据 执行购物车数量++ 重新把购物车数组 填充回缓存中
    不存在 ：直接给购物车数组添加一个新元素  新元素带上购买数量属性
 4.弹出用户友好提示
 */

Page({
  data: {
    goodsdetail:{
      
    }
  },
  imageBig:{},

  onLoad: function (options) {
    const {goods_id} = options;
    // console.log(this.obj.goods_id)
    console.log(goods_id)
    this.sendgoodsdetail(goods_id);
  },
// 发送请求接口的数据
  async sendgoodsdetail(goods_id){
    const goodsdetail = await request({url:'/goods/detail',data:{goods_id}})
    this.imageBig = goodsdetail
    this.setData({
      goodsdetail:{
        goods_price:goodsdetail.goods_price,
        goods_name:goodsdetail.goods_name,
        //在前台进行处理后缀名的替换 
        goods_introduce:goodsdetail.goods_introduce.replace(/\.webp/g,'.jpg'),
        pics:goodsdetail.pics
      }
    })
  },
  // 图片放大预览
  handel(e){
    // 构造url   this.imageBig.pics 它本身是个对象，要构造函数所以用到 .map
    const urls = this.imageBig.pics.map(v=>v.pics_mid)
    // 传递一个url
    const current = e.currentTarget.dataset.url
    wx.previewImage({
      current:current,
      urls:urls,
    })
  },

  // 加入购物车
  handcaradd(){
    console.log(1)
    // 获取本地缓存中的数组
    const carts =wx.getStorageSync('car')|| [] ; 
    console.log(carts)
    // 存在返回索引，不存在返回-1
    const id = carts.findIndex(v=>v.goods_id === this.imageBig.goods_id) 

    // 拿到索引后进行判断
    if(id === -1){
  // 不存在  第一次添加
      this.imageBig.num = 1;
      this.imageBig.check=true;
      carts.push(this.imageBig)
    }else{
// 存在  num++
      carts[id].num++;
    }

    // 把数据加入到set缓存里面
    wx.setStorageSync('car', carts)

    wx.showToast({
      title: '加入成功',
      icon:'success',
      // 防止手抖疯狂点击按钮
      mask:true
    })
  }

})